package com.citas.client.widget;

import java.util.ArrayList;

import sun.font.TextLabel;

import com.citas.client.Display;
import com.citas.client.Getdata;
import com.citas.client.GetdataAsync;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DecoratorPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.IntegerBox;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.datepicker.client.DateBox;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.event.dom.client.ClickEvent;

public class Usuario extends Composite {

	private final GetdataAsync consulta = GWT
			.create(Getdata.class);
	
	private static UsuarioUiBinder uiBinder = GWT.create(UsuarioUiBinder.class);
	@UiField Button bot_cerrarSession;
	@UiField Button bot_buscarCita;
	
	@UiField TextBox nombres;
	@UiField TextBox paterno;
	@UiField TextBox materno;
	@UiField DecoratorPanel personales;
	@UiField TextBox sexo;
	@UiField TextBox direccion;
	@UiField TextBox dni;
	@UiField TextBox factor_rh;
	@UiField TextBox grupo_sanguineo;
	@UiField Label bien;
	
	interface UsuarioUiBinder extends UiBinder<Widget, Usuario> {
	}
	
	PanelBusqueda panelbusqueda=null;
	Command comando=null;
	
	public Usuario(Command co) {
		initWidget(uiBinder.createAndBindUi(this));
		comando=co;
		cargarDatosUsuario();
	}
	
	private PanelBusqueda getPanelBusqueda(){
		if(panelbusqueda==null){
			panelbusqueda=new PanelBusqueda(new Command() {
				
				@Override
				public void execute() {
					// TODO Auto-generated method stub
					mostrar();
				}
			});
		}
		return panelbusqueda;
	}
	
	void cargarDatosUsuario(){
		String user=Cookies.getCookie("idpersona");
		consulta.getDatosUsuario(user, new AsyncCallback<ArrayList<String[]>>() {
			
			@Override
			public void onSuccess(ArrayList<String[]> result) {
				// TODO Auto-generated method stub
				dni.setText(result.get(0)[2].toString());
				nombres.setText(result.get(0)[3].toString());
				paterno.setText(result.get(0)[4].toString());
				materno.setText(result.get(0)[5].toString());
				sexo.setText(result.get(0)[9].toString());
				direccion.setText(result.get(0)[12].toString());
				factor_rh.setText(result.get(0)[11].toString());
				grupo_sanguineo.setText(result.get(0)[10].toString());
				String a=bien.getText()+" "+nombres.getText()+" "+paterno.getText()+" "+materno.getText();
				bien.setText(a);
			}
			
			@Override
			public void onFailure(Throwable caught) {
				// TODO Auto-generated method stub
				
			}
		});
		
	}
	
	public void mostrar(){
		Display.get().setWidget(this);
	}
	@UiHandler("bot_cerrarSession")
	void onBot_cerrarSessionClick(ClickEvent event) {
		comando.execute();
	}
	@UiHandler("bot_buscarCita")
	void onBot_buscarCitaClick(ClickEvent event) {
		getPanelBusqueda().mostrar();
	}
}
